package com.uade.magicCompany.entities;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

import org.apache.log4j.Logger;

import com.uade.magicCompany.model.Atraccion;
import com.uade.magicCompany.model.Entrada;
import com.uade.magicCompany.model.RapidPass;

@Entity
public class RapidPassEntity {

	@Id
	@Column(name = "rapidPassEntity_id")
	private Long id;
	
	private String horarioInicio;
	
	private String horarioVencimiento;
	
	private String estado;
	
	private String fechaEmision;
	
	private String fecha;
	
	@ManyToOne
	@JoinColumn(name = "atraccionEntity_id")	
	private AtraccionEntity atraccion;
	
	@ManyToOne
	@JoinColumn(name = "entradaEntity_id")
	private EntradaEntity entrada;

	private static Logger log = Logger.getLogger(RapidPassEntity.class);

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getHorarioInicio() {
		return horarioInicio;
	}

	public void setHorarioInicio(String horarioInicio) {
		this.horarioInicio = horarioInicio;
	}

	public String getHorarioVencimiento() {
		return horarioVencimiento;
	}

	public void setHorarioVencimiento(String horarioVencimiento) {
		this.horarioVencimiento = horarioVencimiento;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public String getFechaEmision() {
		return fechaEmision;
	}

	public void setFechaEmision(String fechaEmision) {
		this.fechaEmision = fechaEmision;
	}

	public String getFecha() {
		return fecha;
	}

	public void setFecha(String fecha) {
		this.fecha = fecha;
	}

	public AtraccionEntity getAtraccion() {
		return atraccion;
	}

	public void setAtraccion(AtraccionEntity atraccion) {
		this.atraccion = atraccion;
	}

	public EntradaEntity getEntrada() {
		return entrada;
	}

	public void setEntrada(EntradaEntity entrada) {
		this.entrada = entrada;
	}
	
	public RapidPass getRapidPass(){
		RapidPass rapidPass = new RapidPass();
		rapidPass.setFechaRapidPass(this.getFecha());
		rapidPass.setFechaEmision(this.getFechaEmision());
		rapidPass.setHoraInicio(createHoraString(this.getHorarioInicio()));
		rapidPass.setHoraVencimiento(createHoraString(this.getHorarioVencimiento()));
		rapidPass.setId(this.getId());
		Atraccion atraccion = new Atraccion(getAtraccion().getId(), getAtraccion().getNombre(), getAtraccion().getDescripcion(), null, null, 0, 0, 0, estado, null);
		rapidPass.setAtraccion(atraccion);
		if (this.getEntrada()!=null){
			Entrada entrada = new Entrada();
			entrada.setId(this.getEntrada().getId());
		}else{
			log .info("El rapid pass no se encuentra asociado a ninguna entrada");
		}
		return rapidPass;
	}
	
	private String createHoraString(String hora)
	{
		return hora.substring(0,2) + ":" + hora.substring(2, 4);
	}
}
